/**
 * 
 */
package com.yidu.drug.action;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.drug.common.Message;
import com.yidu.drug.common.Tools;
import com.yidu.drug.model.DrugTypeModel;
import com.yidu.drug.service.DrugTypeService;

/**
 * 药品类型的Action
 * @author 王志伟
 * @date 2018年8月13日 下午7:21:50
 * @version 1.0
 */
@Controller
@RequestMapping("/drugType")
public class DrugTypeAction {
		//药品类型service
		@Resource
		private DrugTypeService drugTypeService;
		
		//信息类
		Message m=new Message();
		
		/**
		 * 查询所有的方法
		 * @param limit 每页的行数
		 * @param page 开始的页数
		 * @param matTypeName 药品类型名称
		 * @return Map集合
		 */
		@RequestMapping("/findAll")
		@ResponseBody
		public Map<String,Object> findAll(String limit,String page,String dtName){
			//返回查询的Map集合
			return drugTypeService.findAll(limit,page,dtName);
		}
		
		/**
		 * 根据Pid查询上级类型
		 * @return List集合
		 */
		@RequestMapping("/findByPid")
		@ResponseBody
		public List<DrugTypeModel> findByPid(){
			//查询上级类型方法
			return drugTypeService.findByPid();
		}
		
		/**
		 * 增加的方法
		 * @param record 药品类型的模型
		 * @return 消息类
		 */
		@RequestMapping("/add")
		@ResponseBody
		public Message insertSelective(DrugTypeModel record){
			//得到增加的行数存入消息类并返回
			int count=drugTypeService.insertSelective(record);
			m.setNum(count);
			return m;
		}
		/**
		 * 删除的方法
		 * @param dtId 药品类型的ID
		 * @return String字符串
		 */
		@RequestMapping("delete")
		@ResponseBody
		public String deleteBydtId(String dtId){
			//定义变量
			int ss=0;
			//药品类型的List接收查询的类型
			List<DrugTypeModel> list=drugTypeService.findAllType();
			//forEach循环
			for (DrugTypeModel drugTypeModel : list) {
				//类型的Id
				String pids=drugTypeModel.getPid();
				//如果类型ID不为空
				if(!Tools.isEmpty(pids)){
					//如果类型ID等于子级ID
					if(drugTypeModel.getPid().equals(dtId)){
						//改变变量并跳出循环
						ss=1;
						break;
					}
				}
			}
			//如果ss等于1返回字符串nos
			if(ss==1){
				return "nos";
			}else{//否则删除
				//根据材料类型ID删除得到删除的行数
				int count=drugTypeService.deleteByPrimaryKey(dtId);
				/*
				 * 判断返回的数据
				 */
				if(count>0){//如果大于0返回字符串OK
					return "ok";
				}else{//否则返回字符串no
					return "no";
				}
			}
		}
		
		/**
		 * 根据ID查询
		 * @param dtId药品类型ID
		 * @return 查询的药品类型模型
		 */
		@RequestMapping("findById")
		@ResponseBody
		public DrugTypeModel findById(String dtId){
			//返回查询的药品类型
			return drugTypeService.selectByPrimaryKey(dtId);
		}
		
		/**
		 * 根据ID修改
		 * @param dt 药品类型模型
		 */
		@RequestMapping("update")
		@ResponseBody
		public void updateById(DrugTypeModel dt){
			//修改信息
			drugTypeService.updateByPrimaryKeySelective(dt);
		}
		
}
